// 动态创建action
//将整个项目中所有可能用到的action都管理在这个文件中.

// 收藏请求
import { good_fav,good_unfav } from '../../utils/api'

// 同步方法
// 收藏
export function  collection(payload){
    return {type:"PUSH",payload}
}
// 取消收藏
export function cancelCollection(payload){
    return {type:'CANCEL',payload}
}

// 异步方法
// 收藏
export function request_collection(payload){
    // 用户id
    let userid = JSON.parse(localStorage.getItem('userinfo')).userinfo.id
    // 商品id
    let goodid = payload.id
    console.log(userid,goodid);
    // 动态action为函数
    return function (dispatch){
        // action是函数就可以发送请求
        good_fav({userid,goodid}).then((res)=>{
            console.log(res);
            if(res.data.code == 200){
                // 触发同步action，进行本地存储
                dispatch(collection(payload))
            }
        })
    }
}
// 取消收藏
export function request_cancelCollection(payload){
    // 用户id
    let userid = JSON.parse(localStorage.getItem('userinfo')).userinfo.id
    // 商品id
    let goodid = payload.id

    // 返回函数处理异步代码，异步代码有thunk处理
    return function( dispatch){ //中间件react-thunk传入dispatch
        good_unfav({userid,goodid}).then((res)=>{
            console.log(res);
            if( res.data.code == 200 ){
                // 删除本地存储
                dispatch(cancelCollection(payload))
            }
        })
    }
}

